package algorithm.sort;


import algorithm.sort.common.SortTestHelper;

/**
 * 选择排序
 *
 * @author bingo
 * @create 2018-02-25 15:39
 **/
public class SelectSort {

    private String jsonStr="{\"name\":\"fangbin\",\"age\":20}";
    public  void  sort(Comparable[] arr){
        int n=arr.length;
        for(int i=0;i<n;i++){
            int minIndex = i;
            for(int j=i+1;j<n;j++){
                if(arr[minIndex].compareTo(arr[j])>0){
                    minIndex=j;
                }
            }
            Comparable temp = arr[i];
            arr[i]=arr[minIndex];
            arr[minIndex]=temp;
        }

    }

    public void  sort2(Comparable[] arr){
        int n = arr.length;
        int minIndex = 0;
        for(int i=0;i<n-1;i++){
            minIndex =i;
            for(int j=i+1;j<n;j++){
                if(arr[minIndex].compareTo(arr[j])>0){
                    minIndex  = j;
                }
            }
            Comparable temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;

        }

    }
    public void print(Comparable[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+",");
        }

    }


    public static void main(String[] args) {
        Integer[] arr = SortTestHelper.generateRandomArray(10,0,100);
        SelectSort selectSort = new SelectSort();
        selectSort.print(arr);
        selectSort.sort2(arr);
        System.out.println();
        selectSort.print(arr);
        System.out.println(SortTestHelper.isSorted(arr));
    }



}
